home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1996-06-30 | 11.4 KB | [ TEXT/MPCC]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
Confidence Program Detection Match Type Support
66%
dexvert
Compact Compressed (Unix) (archive/compact)
ext
Supported
10%
dexvert
MacBinary (archive/macBinary)
fallback
Supported
1%
dexvert
Text File (text/txt)
fallback
Supported
100%
file
MacBinary II, inited, Sun Jun 30 00:06:04 1996, modified Sun Jun 30 00:06:04 1996, creator 'MPCC', type ASCII, 10995 bytes "camera.c" , at 0x2b73 410 bytes resource
default (weak)
99%
file
data
default
74%
TrID
Macintosh plain text (MacBinary)
default
25%
TrID
MacBinary 2
default (weak)
100%
siegfried
fmt/1762 MacBinary (II)
default
100%
lsar
MacBinary
default
id metadata key value macFileType [ TEXT] macFileCreator [ MPCC]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 08 63 61 6d 65 72 61 | 2e 63 00 00 00 00 00 00 |..camera|.c......| |00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 4d 50 43 | 43 01 00 00 00 00 00 00 |.TEXTMPC|C.......| |00000050| 00 00 00 00 00 2a f3 00 | 00 01 9a ad fb ad ac ad |.....*..|........| |00000060| fb ad ac 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 20 eb 00 00 |........|.... ...| |00000080| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------| |00000090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000000a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000000b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000000c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000000d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2f |--------|------./| |000000e0| 2f 20 20 43 61 6d 65 72 | 61 20 46 75 6e 63 74 69 |/ Camer|a Functi| |000000f0| 6f 6e 73 0d 2f 2f 0d 2f | 2f 20 20 20 20 20 20 62 |ons.//./|/ b| |00000100| 79 20 50 68 69 6c 69 70 | 20 4d 63 42 72 69 64 65 |y Philip| McBride| |00000110| 0d 2f 2f 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//.//--|--------| |00000120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000150| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000160| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000170| 2d 2d 0d 0d 0d 23 69 6e | 63 6c 75 64 65 20 3c 46 |--...#in|clude <F| |00000180| 69 78 4d 61 74 68 2e 68 | 3e 0d 23 69 6e 63 6c 75 |ixMath.h|>.#inclu| |00000190| 64 65 20 22 47 61 6d 65 | 43 6f 6e 74 72 6f 6c 73 |de "Game|Controls| |000001a0| 2e 68 22 0d 23 69 6e 63 | 6c 75 64 65 20 22 65 78 |.h".#inc|lude "ex| |000001b0| 74 65 72 6e 2e 68 22 0d | 23 69 6e 63 6c 75 64 65 |tern.h".|#include| |000001c0| 20 22 63 61 6d 65 72 61 | 2e 68 22 0d 0d 2f 2f 2d | "camera|.h"..//-| |000001d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000001e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000001f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 2f 2f 20 20 |--------|---.// | |00000230| 43 72 65 61 74 65 20 61 | 20 43 61 6d 65 72 61 20 |Create a| Camera | |00000240| 28 77 69 74 68 20 64 65 | 66 61 75 6c 74 20 73 65 |(with de|fault se| |00000250| 74 74 69 6e 67 73 29 20 | 2d 2d 20 75 73 65 64 20 |ttings) |-- used | |00000260| 69 66 20 6e 6f 20 63 61 | 6d 65 72 61 20 69 6e 63 |if no ca|mera inc| |00000270| 6c 75 64 65 64 20 69 6e | 20 66 69 6c 65 0d 2f 2f |luded in| file.//| |00000280| 0d 54 51 33 43 61 6d 65 | 72 61 4f 62 6a 65 63 74 |.TQ3Came|raObject| |00000290| 20 4d 79 4e 65 77 43 61 | 6d 65 72 61 28 43 57 69 | MyNewCa|mera(CWi| |000002a0| 6e 64 6f 77 50 74 72 20 | 74 68 65 57 69 6e 64 6f |ndowPtr |theWindo| |000002b0| 77 29 0d 7b 0d 09 54 51 | 33 56 69 65 77 41 6e 67 |w).{..TQ|3ViewAng| |000002c0| 6c 65 41 73 70 65 63 74 | 43 61 6d 65 72 61 44 61 |leAspect|CameraDa| |000002d0| 74 61 09 70 65 72 73 70 | 65 63 74 69 76 65 44 61 |ta.persp|ectiveDa| |000002e0| 74 61 3b 0d 09 54 51 33 | 43 61 6d 65 72 61 4f 62 |ta;..TQ3|CameraOb| |000002f0| 6a 65 63 74 09 09 09 09 | 09 63 61 6d 65 72 61 3b |ject....|.camera;| |00000300| 0d 09 66 6c 6f 61 74 20 | 09 09 09 09 09 09 09 66 |..float |.......f| |00000310| 69 65 6c 64 4f 66 56 69 | 65 77 20 3d 20 2e 35 30 |ieldOfVi|ew = .50| |00000320| 3b 0d 09 54 51 33 53 74 | 61 74 75 73 09 09 09 09 |;..TQ3St|atus....| |00000330| 09 09 72 65 74 75 72 6e | 56 61 6c 20 3d 20 6b 51 |..return|Val = kQ| |00000340| 33 46 61 69 6c 75 72 65 | 20 3b 0d 0d 09 2f 2f 20 |3Failure| ;...// | |00000350| 41 73 73 69 67 6e 20 64 | 65 66 61 75 6c 74 20 70 |Assign d|efault p| |00000360| 6c 61 63 65 6d 65 6e 74 | 20 61 6e 64 20 72 61 6e |lacement| and ran| |00000370| 67 65 0d 09 70 65 72 73 | 70 65 63 74 69 76 65 44 |ge..pers|pectiveD| |00000380| 61 74 61 2e 63 61 6d 65 | 72 61 44 61 74 61 2e 70 |ata.came|raData.p| |00000390| 6c 61 63 65 6d 65 6e 74 | 2e 63 61 6d 65 72 61 4c |lacement|.cameraL| |000003a0| 6f 63 61 74 69 6f 6e 20 | 09 3d 20 6b 4d 79 44 65 |ocation |.= kMyDe| |000003b0| 66 61 75 6c 74 46 72 6f | 6d 3b 0d 09 70 65 72 73 |faultFro|m;..pers| |000003c0| 70 65 63 74 69 76 65 44 | 61 74 61 2e 63 61 6d 65 |pectiveD|ata.came| |000003d0| 72 61 44 61 74 61 2e 70 | 6c 61 63 65 6d 65 6e 74 |raData.p|lacement| |000003e0| 2e 70 6f 69 6e 74 4f 66 | 49 6e 74 65 72 65 73 74 |.pointOf|Interest| |000003f0| 20 09 3d 20 6b 4d 79 44 | 65 66 61 75 6c 74 54 6f | .= kMyD|efaultTo| |00000400| 3b 0d 09 70 65 72 73 70 | 65 63 74 69 76 65 44 61 |;..persp|ectiveDa| |00000410| 74 61 2e 63 61 6d 65 72 | 61 44 61 74 61 2e 70 6c |ta.camer|aData.pl| |00000420| 61 63 65 6d 65 6e 74 2e | 75 70 56 65 63 74 6f 72 |acement.|upVector| |00000430| 20 09 09 09 3d 20 6b 4d | 79 44 65 66 61 75 6c 74 | ...= kM|yDefault| |00000440| 55 70 3b 0d 09 70 65 72 | 73 70 65 63 74 69 76 65 |Up;..per|spective| |00000450| 44 61 74 61 2e 63 61 6d | 65 72 61 44 61 74 61 2e |Data.cam|eraData.| |00000460| 72 61 6e 67 65 2e 68 69 | 74 68 65 72 09 3d 20 6b |range.hi|ther.= k| |00000470| 4d 79 44 65 66 61 75 6c | 74 48 69 74 68 65 72 3b |MyDefaul|tHither;| |00000480| 0d 09 70 65 72 73 70 65 | 63 74 69 76 65 44 61 74 |..perspe|ctiveDat| |00000490| 61 2e 63 61 6d 65 72 61 | 44 61 74 61 2e 72 61 6e |a.camera|Data.ran| |000004a0| 67 65 2e 79 6f 6e 20 09 | 3d 20 6b 4d 79 44 65 66 |ge.yon .|= kMyDef| |000004b0| 61 75 6c 74 59 6f 6e 3b | 0d 0d 09 2f 2f 20 41 73 |aultYon;|...// As| |000004c0| 73 69 67 6e 20 73 74 61 | 6e 64 61 72 64 20 76 69 |sign sta|ndard vi| |000004d0| 65 77 70 6f 72 74 0d 09 | 70 65 72 73 70 65 63 74 |ewport..|perspect| |000004e0| 69 76 65 44 61 74 61 2e | 63 61 6d 65 72 61 44 61 |iveData.|cameraDa| |000004f0| 74 61 2e 76 69 65 77 50 | 6f 72 74 2e 6f 72 69 67 |ta.viewP|ort.orig| |00000500| 69 6e 2e 78 20 3d 20 2d | 31 2e 30 3b 0d 09 70 65 |in.x = -|1.0;..pe| |00000510| 72 73 70 65 63 74 69 76 | 65 44 61 74 61 2e 63 61 |rspectiv|eData.ca| |00000520| 6d 65 72 61 44 61 74 61 | 2e 76 69 65 77 50 6f 72 |meraData|.viewPor| |00000530| 74 2e 6f 72 69 67 69 6e | 2e 79 20 3d 20 31 2e 30 |t.origin|.y = 1.0| |00000540| 3b 0d 09 70 65 72 73 70 | 65 63 74 69 76 65 44 61 |;..persp|ectiveDa| |00000550| 74 61 2e 63 61 6d 65 72 | 61 44 61 74 61 2e 76 69 |ta.camer|aData.vi| |00000560| 65 77 50 6f 72 74 2e 77 | 69 64 74 68 20 3d 20 32 |ewPort.w|idth = 2| |00000570| 2e 30 3b 0d 09 70 65 72 | 73 70 65 63 74 69 76 65 |.0;..per|spective| |00000580| 44 61 74 61 2e 63 61 6d | 65 72 61 44 61 74 61 2e |Data.cam|eraData.| |00000590| 76 69 65 77 50 6f 72 74 | 2e 68 65 69 67 68 74 20 |viewPort|.height | |000005a0| 3d 20 32 2e 30 3b 0d 09 | 0d 09 70 65 72 73 70 65 |= 2.0;..|..perspe| |000005b0| 63 74 69 76 65 44 61 74 | 61 2e 66 6f 76 09 09 09 |ctiveDat|a.fov...| |000005c0| 09 3d 20 66 69 65 6c 64 | 4f 66 56 69 65 77 3b 0d |.= field|OfView;.| |000005d0| 09 70 65 72 73 70 65 63 | 74 69 76 65 44 61 74 61 |.perspec|tiveData| |000005e0| 2e 61 73 70 65 63 74 52 | 61 74 69 6f 58 54 6f 59 |.aspectR|atioXToY| |000005f0| 09 3d 0d 09 09 28 66 6c | 6f 61 74 29 20 28 74 68 |.=...(fl|oat) (th| |00000600| 65 57 69 6e 64 6f 77 2d | 3e 70 6f 72 74 52 65 63 |eWindow-|>portRec| |00000610| 74 2e 72 69 67 68 74 20 | 2d 20 74 68 65 57 69 6e |t.right |- theWin| |00000620| 64 6f 77 2d 3e 70 6f 72 | 74 52 65 63 74 2e 6c 65 |dow->por|tRect.le| |00000630| 66 74 29 20 2f 20 0d 09 | 09 28 66 6c 6f 61 74 29 |ft) / ..|.(float)| |00000640| 20 28 74 68 65 57 69 6e | 64 6f 77 2d 3e 70 6f 72 | (theWin|dow->por| |00000650| 74 52 65 63 74 2e 62 6f | 74 74 6f 6d 20 2d 20 74 |tRect.bo|ttom - t| |00000660| 68 65 57 69 6e 64 6f 77 | 2d 3e 70 6f 72 74 52 65 |heWindow|->portRe| |00000670| 63 74 2e 74 6f 70 29 3b | 0d 09 09 0d 09 63 61 6d |ct.top);|.....cam| |00000680| 65 72 61 20 3d 20 51 33 | 56 69 65 77 41 6e 67 6c |era = Q3|ViewAngl| |00000690| 65 41 73 70 65 63 74 43 | 61 6d 65 72 61 5f 4e 65 |eAspectC|amera_Ne| |000006a0| 77 28 26 70 65 72 73 70 | 65 63 74 69 76 65 44 61 |w(&persp|ectiveDa| |000006b0| 74 61 29 3b 0d 09 0d 09 | 72 65 74 75 72 6e 20 63 |ta);....|return c| |000006c0| 61 6d 65 72 61 20 3b 0d | 7d 0d 0d 2f 2f 2d 2d 2d |amera ;.|}..//---| |000006d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000006e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000006f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 20 47 65 |--------|-.// Ge| |00000730| 74 20 61 20 4d 6f 64 65 | 6c 27 73 20 42 6f 75 6e |t a Mode|l's Boun| |00000740| 64 69 6e 67 20 42 6f 78 | 0d 2f 2f 0d 76 6f 69 64 |ding Box|.//.void| |00000750| 20 4d 79 47 65 74 42 6f | 75 6e 64 69 6e 67 42 6f | MyGetBo|undingBo| |00000760| 78 28 44 6f 63 75 6d 65 | 6e 74 50 74 72 20 74 68 |x(Docume|ntPtr th| |00000770| 65 44 6f 63 75 6d 65 6e | 74 2c 20 54 51 33 47 72 |eDocumen|t, TQ3Gr| |00000780| 6f 75 70 4f 62 6a 65 63 | 74 20 6d 61 69 6e 47 72 |oupObjec|t mainGr| |00000790| 6f 75 70 2c 20 54 51 33 | 42 6f 75 6e 64 69 6e 67 |oup, TQ3|Bounding| |000007a0| 42 6f 78 20 2a 76 69 65 | 77 42 42 6f 78 29 0d 7b |Box *vie|wBBox).{| |000007b0| 0d 09 54 51 33 53 74 61 | 74 75 73 09 09 09 09 09 |..TQ3Sta|tus.....| |000007c0| 73 74 61 74 75 73 3b 0d | 09 54 51 33 56 69 65 77 |status;.|.TQ3View| |000007d0| 4f 62 6a 65 63 74 20 09 | 09 09 09 76 69 65 77 4f |Object .|...viewO| |000007e0| 62 6a 65 63 74 20 3d 20 | 74 68 65 44 6f 63 75 6d |bject = |theDocum| |000007f0| 65 6e 74 2d 3e 74 68 65 | 56 69 65 77 3b 0d 09 0d |ent->the|View;...| |00000800| 09 51 33 56 69 65 77 5f | 53 74 61 72 74 42 6f 75 |.Q3View_|StartBou| |00000810| 6e 64 69 6e 67 42 6f 78 | 28 76 69 65 77 4f 62 6a |ndingBox|(viewObj| |00000820| 65 63 74 2c 6b 51 33 43 | 6f 6d 70 75 74 65 42 6f |ect,kQ3C|omputeBo| |00000830| 75 6e 64 73 41 70 70 72 | 6f 78 69 6d 61 74 65 29 |undsAppr|oximate)| |00000840| 3b 0d 09 64 6f 20 7b 0d | 09 09 73 74 61 74 75 73 |;..do {.|..status| |00000850| 20 3d 20 51 33 44 69 73 | 70 6c 61 79 47 72 6f 75 | = Q3Dis|playGrou| |00000860| 70 5f 53 75 62 6d 69 74 | 28 6d 61 69 6e 47 72 6f |p_Submit|(mainGro| |00000870| 75 70 2c 20 76 69 65 77 | 4f 62 6a 65 63 74 29 3b |up, view|Object);| |00000880| 0d 09 7d 20 77 68 69 6c | 65 20 28 51 33 56 69 65 |..} whil|e (Q3Vie| |00000890| 77 5f 45 6e 64 42 6f 75 | 6e 64 69 6e 67 42 6f 78 |w_EndBou|ndingBox| |000008a0| 28 76 69 65 77 4f 62 6a | 65 63 74 2c 20 76 69 65 |(viewObj|ect, vie| |000008b0| 77 42 42 6f 78 29 20 3d | 3d 20 6b 51 33 56 69 65 |wBBox) =|= kQ3Vie| |000008c0| 77 53 74 61 74 75 73 52 | 65 74 72 61 76 65 72 73 |wStatusR|etravers| |000008d0| 65 29 3b 09 09 09 09 09 | 09 09 09 20 20 20 20 20 |e);.....|... | |000008e0| 20 20 20 0d 7d 0d 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d | .}../|/-------| |000008f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000940| 2d 2d 2d 2d 2d 0d 2f 2f | 20 20 47 65 74 20 74 68 |-----.//| Get th| |00000950| 65 20 43 61 6d 65 72 61 | 20 44 61 74 61 20 28 69 |e Camera| Data (i| |00000960| 6e 69 74 69 61 6c 69 7a | 65 20 66 6f 72 20 6e 65 |nitializ|e for ne| |00000970| 77 20 66 69 6c 65 20 61 | 6e 64 20 63 61 6d 65 72 |w file a|nd camer| |00000980| 61 29 0d 2f 2f 0d 2f 2f | 20 47 65 74 20 74 68 65 |a).//.//| Get the| |00000990| 20 63 61 6d 65 72 61 20 | 69 6e 66 6f 72 6d 61 74 | camera |informat| |000009a0| 69 6f 6e 20 66 72 6f 6d | 20 74 68 65 20 63 75 72 |ion from| the cur| |000009b0| 72 65 6e 74 20 76 69 65 | 77 20 61 6e 64 20 69 6e |rent vie|w and in| |000009c0| 69 74 69 61 6c 69 7a 65 | 20 74 68 65 0d 2f 2f 20 |itialize| the.// | |000009d0| 63 61 6d 65 72 61 20 72 | 65 6c 61 74 65 64 20 66 |camera r|elated f| |000009e0| 69 65 6c 64 73 20 6f 66 | 20 74 68 65 20 64 6f 63 |ields of| the doc| |000009f0| 75 6d 65 6e 74 20 72 65 | 63 6f 72 64 0d 76 6f 69 |ument re|cord.voi| |00000a00| 64 20 4d 79 47 65 74 43 | 61 6d 65 72 61 44 61 74 |d MyGetC|ameraDat| |00000a10| 61 28 44 6f 63 75 6d 65 | 6e 74 50 74 72 20 74 68 |a(Docume|ntPtr th| |00000a20| 65 44 6f 63 75 6d 65 6e | 74 2c 20 54 51 33 43 61 |eDocumen|t, TQ3Ca| |00000a30| 6d 65 72 61 4f 62 6a 65 | 63 74 20 74 68 65 43 61 |meraObje|ct theCa| |00000a40| 6d 65 72 61 29 0d 7b 0d | 09 54 51 33 43 61 6d 65 |mera).{.|.TQ3Came| |00000a50| 72 61 50 6c 61 63 65 6d | 65 6e 74 09 63 61 6d 65 |raPlacem|ent.came| |00000a60| 72 61 50 6c 61 63 65 6d | 65 6e 74 3b 0d 0d 09 2f |raPlacem|ent;.../| |00000a70| 2f 20 47 65 74 20 74 68 | 65 20 63 61 6d 65 72 61 |/ Get th|e camera| |00000a80| 20 64 61 74 61 2e 0d 09 | 51 33 43 61 6d 65 72 61 | data...|Q3Camera| |00000a90| 5f 47 65 74 50 6c 61 63 | 65 6d 65 6e 74 28 74 68 |_GetPlac|ement(th| |00000aa0| 65 43 61 6d 65 72 61 2c | 20 26 63 61 6d 65 72 61 |eCamera,| &camera| |00000ab0| 50 6c 61 63 65 6d 65 6e | 74 29 3b 0d 0d 09 2f 2f |Placemen|t);...//| |00000ac0| 20 53 65 74 20 74 68 65 | 20 64 6f 63 75 6d 65 6e | Set the| documen| |00000ad0| 74 27 73 20 63 61 6d 65 | 72 61 20 64 61 74 61 2e |t's came|ra data.| |00000ae0| 0d 09 74 68 65 44 6f 63 | 75 6d 65 6e 74 2d 3e 63 |..theDoc|ument->c| |00000af0| 61 6d 65 72 61 4c 6f 63 | 61 74 69 6f 6e 20 3d 20 |ameraLoc|ation = | |00000b00| 63 61 6d 65 72 61 50 6c | 61 63 65 6d 65 6e 74 2e |cameraPl|acement.| |00000b10| 20 63 61 6d 65 72 61 4c | 6f 63 61 74 69 6f 6e 3b | cameraL|ocation;| |00000b20| 0d 09 74 68 65 44 6f 63 | 75 6d 65 6e 74 2d 3e 70 |..theDoc|ument->p| |00000b30| 6f 69 6e 74 4f 66 49 6e | 74 65 72 65 73 74 20 3d |ointOfIn|terest =| |00000b40| 20 63 61 6d 65 72 61 50 | 6c 61 63 65 6d 65 6e 74 | cameraP|lacement| |00000b50| 2e 20 70 6f 69 6e 74 4f | 66 49 6e 74 65 72 65 73 |. pointO|fInteres| |00000b60| 74 3b 0d 09 74 68 65 44 | 6f 63 75 6d 65 6e 74 2d |t;..theD|ocument-| |00000b70| 3e 79 56 65 63 74 6f 72 | 20 3d 20 63 61 6d 65 72 |>yVector| = camer| |00000b80| 61 50 6c 61 63 65 6d 65 | 6e 74 2e 20 75 70 56 65 |aPlaceme|nt. upVe| |00000b90| 63 74 6f 72 3b 0d 0d 09 | 2f 2f 20 43 61 6c 63 75 |ctor;...|// Calcu| |00000ba0| 6c 61 74 65 20 74 68 65 | 20 78 20 61 6e 64 20 7a |late the| x and z| |00000bb0| 20 76 65 63 74 6f 72 73 | 20 61 6e 64 20 61 73 73 | vectors| and ass| |00000bc0| 69 67 6e 20 74 68 65 6d | 20 74 6f 20 74 68 65 20 |ign them| to the | |00000bd0| 64 6f 63 75 6d 65 6e 74 | 2e 0d 09 51 33 50 6f 69 |document|...Q3Poi| |00000be0| 6e 74 33 44 5f 53 75 62 | 74 72 61 63 74 28 26 74 |nt3D_Sub|tract(&t| |00000bf0| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 70 6f 69 6e |heDocume|nt->poin| |00000c00| 74 4f 66 49 6e 74 65 72 | 65 73 74 2c 0d 09 09 26 |tOfInter|est,...&| |00000c10| 74 68 65 44 6f 63 75 6d | 65 6e 74 2d 3e 63 61 6d |theDocum|ent->cam| |00000c20| 65 72 61 4c 6f 63 61 74 | 69 6f 6e 2c 20 26 74 68 |eraLocat|ion, &th| |00000c30| 65 44 6f 63 75 6d 65 6e | 74 2d 3e 7a 56 65 63 74 |eDocumen|t->zVect| |00000c40| 6f 72 29 3b 0d 09 51 33 | 56 65 63 74 6f 72 33 44 |or);..Q3|Vector3D| |00000c50| 5f 43 72 6f 73 73 28 26 | 74 68 65 44 6f 63 75 6d |_Cross(&|theDocum| |00000c60| 65 6e 74 2d 3e 7a 56 65 | 63 74 6f 72 2c 20 26 74 |ent->zVe|ctor, &t| |00000c70| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 79 56 65 63 |heDocume|nt->yVec| |00000c80| 74 6f 72 2c 0d 09 09 26 | 74 68 65 44 6f 63 75 6d |tor,...&|theDocum| |00000c90| 65 6e 74 2d 3e 78 56 65 | 63 74 6f 72 29 3b 0d 7d |ent->xVe|ctor);.}| |00000ca0| 0d 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..//----|--------| |00000cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000d00| 0d 2f 2f 20 20 53 65 74 | 20 74 68 65 20 43 61 6d |.// Set| the Cam| |00000d10| 65 72 61 27 61 20 44 61 | 74 61 20 28 77 68 65 6e |era'a Da|ta (when| |00000d20| 20 6d 6f 76 65 64 29 0d | 2f 2f 0d 2f 2f 20 53 65 | moved).|//.// Se| |00000d30| 74 20 74 68 65 20 63 61 | 6d 65 72 61 20 6f 66 20 |t the ca|mera of | |00000d40| 74 68 65 20 63 75 72 72 | 65 6e 74 20 76 69 65 77 |the curr|ent view| |00000d50| 20 74 6f 20 74 68 65 20 | 76 61 6c 75 65 73 20 69 | to the |values i| |00000d60| 6e 20 74 68 65 20 64 6f | 63 75 6d 65 6e 74 20 72 |n the do|cument r| |00000d70| 65 63 6f 72 64 0d 76 6f | 69 64 20 4d 79 53 65 74 |ecord.vo|id MySet| |00000d80| 43 61 6d 65 72 61 44 61 | 74 61 28 44 6f 63 75 6d |CameraDa|ta(Docum| |00000d90| 65 6e 74 50 74 72 20 74 | 68 65 44 6f 63 75 6d 65 |entPtr t|heDocume| |00000da0| 6e 74 2c 20 54 51 33 43 | 61 6d 65 72 61 4f 62 6a |nt, TQ3C|ameraObj| |00000db0| 65 63 74 20 74 68 65 43 | 61 6d 65 72 61 29 0d 7b |ect theC|amera).{| |00000dc0| 0d 09 54 51 33 43 61 6d | 65 72 61 50 6c 61 63 65 |..TQ3Cam|eraPlace| |00000dd0| 6d 65 6e 74 09 63 61 6d | 65 72 61 50 6c 61 63 65 |ment.cam|eraPlace| |00000de0| 6d 65 6e 74 3b 0d 0d 09 | 2f 2f 20 53 65 74 20 74 |ment;...|// Set t| |00000df0| 68 65 20 63 61 6d 65 72 | 61 20 70 6c 61 63 65 6d |he camer|a placem| |00000e00| 65 6e 74 20 64 61 74 61 | 2e 0d 09 63 61 6d 65 72 |ent data|...camer| |00000e10| 61 50 6c 61 63 65 6d 65 | 6e 74 2e 63 61 6d 65 72 |aPlaceme|nt.camer| |00000e20| 61 4c 6f 63 61 74 69 6f | 6e 20 3d 20 74 68 65 44 |aLocatio|n = theD| |00000e30| 6f 63 75 6d 65 6e 74 2d | 3e 63 61 6d 65 72 61 4c |ocument-|>cameraL| |00000e40| 6f 63 61 74 69 6f 6e 3b | 0d 09 63 61 6d 65 72 61 |ocation;|..camera| |00000e50| 50 6c 61 63 65 6d 65 6e | 74 2e 70 6f 69 6e 74 4f |Placemen|t.pointO| |00000e60| 66 49 6e 74 65 72 65 73 | 74 20 3d 20 74 68 65 44 |fInteres|t = theD| |00000e70| 6f 63 75 6d 65 6e 74 2d | 3e 70 6f 69 6e 74 4f 66 |ocument-|>pointOf| |00000e80| 49 6e 74 65 72 65 73 74 | 3b 0d 09 63 61 6d 65 72 |Interest|;..camer| |00000e90| 61 50 6c 61 63 65 6d 65 | 6e 74 2e 75 70 56 65 63 |aPlaceme|nt.upVec| |00000ea0| 74 6f 72 20 3d 20 74 68 | 65 44 6f 63 75 6d 65 6e |tor = th|eDocumen| |00000eb0| 74 2d 3e 79 56 65 63 74 | 6f 72 3b 0d 0d 09 2f 2f |t->yVect|or;...//| |00000ec0| 20 53 65 74 20 74 68 65 | 20 63 61 6d 65 72 61 20 | Set the| camera | |00000ed0| 64 61 74 61 20 74 6f 20 | 74 68 65 20 63 61 6d 65 |data to |the came| |00000ee0| 72 61 2e 0d 09 51 33 43 | 61 6d 65 72 61 5f 53 65 |ra...Q3C|amera_Se| |00000ef0| 74 50 6c 61 63 65 6d 65 | 6e 74 28 74 68 65 43 61 |tPlaceme|nt(theCa| |00000f00| 6d 65 72 61 2c 20 26 63 | 61 6d 65 72 61 50 6c 61 |mera, &c|ameraPla| |00000f10| 63 65 6d 65 6e 74 29 3b | 0d 7d 0d 0d 2f 2f 2d 2d |cement);|.}..//--| |00000f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 20 4d |--------|--.// M| |00000f80| 6f 76 65 20 43 61 6d 65 | 72 61 20 58 0d 2f 2f 0d |ove Came|ra X.//.| |00000f90| 2f 2f 20 4d 6f 76 65 20 | 74 68 65 20 63 61 6d 65 |// Move |the came| |00000fa0| 72 61 20 61 6c 6f 6e 67 | 20 74 68 65 20 58 20 61 |ra along| the X a| |00000fb0| 78 69 73 0d 76 6f 69 64 | 20 4d 79 4d 6f 76 65 43 |xis.void| MyMoveC| |00000fc0| 61 6d 65 72 61 58 28 44 | 6f 63 75 6d 65 6e 74 50 |ameraX(D|ocumentP| |00000fd0| 74 72 20 74 68 65 44 6f | 63 75 6d 65 6e 74 2c 20 |tr theDo|cument, | |00000fe0| 66 6c 6f 61 74 20 64 58 | 29 0d 7b 0d 09 54 51 33 |float dX|).{..TQ3| |00000ff0| 56 69 65 77 4f 62 6a 65 | 63 74 09 09 74 68 65 56 |ViewObje|ct..theV| |00001000| 69 65 77 3b 0d 09 54 51 | 33 43 61 6d 65 72 61 4f |iew;..TQ|3CameraO| |00001010| 62 6a 65 63 74 09 09 74 | 68 65 43 61 6d 65 72 61 |bject..t|heCamera| |00001020| 3b 0d 09 54 51 33 56 65 | 63 74 6f 72 33 44 09 09 |;..TQ3Ve|ctor3D..| |00001030| 09 73 63 61 6c 65 64 56 | 65 63 74 6f 72 3b 0d 09 |.scaledV|ector;..| |00001040| 54 51 33 50 6f 69 6e 74 | 33 44 09 09 09 6e 65 77 |TQ3Point|3D...new| |00001050| 50 6f 69 6e 74 3b 0d 0d | 09 2f 2f 20 47 65 74 20 |Point;..|.// Get | |00001060| 74 68 65 20 76 69 65 77 | 20 61 6e 64 20 74 68 65 |the view| and the| |00001070| 20 63 61 6d 65 72 61 20 | 6f 62 6a 65 63 74 73 2e | camera |objects.| |00001080| 0d 09 74 68 65 56 69 65 | 77 20 3d 20 74 68 65 44 |..theVie|w = theD| |00001090| 6f 63 75 6d 65 6e 74 2d | 3e 74 68 65 56 69 65 77 |ocument-|>theView| |000010a0| 3b 0d 09 51 33 56 69 65 | 77 5f 47 65 74 43 61 6d |;..Q3Vie|w_GetCam| |000010b0| 65 72 61 28 74 68 65 56 | 69 65 77 2c 20 26 74 68 |era(theV|iew, &th| |000010c0| 65 43 61 6d 65 72 61 29 | 3b 0d 0d 09 2f 2f 20 53 |eCamera)|;...// S| |000010d0| 63 61 6c 65 20 74 68 65 | 20 58 20 76 65 63 74 6f |cale the| X vecto| |000010e0| 72 20 74 6f 20 6d 61 6b | 65 20 69 74 20 64 58 20 |r to mak|e it dX | |000010f0| 6c 6f 6e 67 65 72 2e 0d | 09 51 33 56 65 63 74 6f |longer..|.Q3Vecto| |00001100| 72 33 44 5f 53 63 61 6c | 65 28 26 74 68 65 44 6f |r3D_Scal|e(&theDo| |00001110| 63 75 6d 65 6e 74 2d 3e | 78 56 65 63 74 6f 72 2c |cument->|xVector,| |00001120| 64 58 2f 51 33 56 65 63 | 74 6f 72 33 44 5f 4c 65 |dX/Q3Vec|tor3D_Le| |00001130| 6e 67 74 68 28 26 74 68 | 65 44 6f 63 75 6d 65 6e |ngth(&th|eDocumen| |00001140| 74 2d 3e 78 56 65 63 74 | 6f 72 29 2c 0d 09 09 09 |t->xVect|or),....| |00001150| 09 09 09 26 73 63 61 6c | 65 64 56 65 63 74 6f 72 |...&scal|edVector| |00001160| 29 3b 0d 0d 09 2f 2f 20 | 4d 6f 76 65 20 74 68 65 |);...// |Move the| |00001170| 20 63 61 6d 65 72 61 20 | 70 6f 73 69 74 69 6f 6e | camera |position| |00001180| 20 61 6e 64 20 64 69 72 | 65 63 74 69 6f 6e 20 62 | and dir|ection b| |00001190| 79 20 74 68 65 20 6e 65 | 77 20 76 65 63 74 6f 72 |y the ne|w vector| |000011a0| 2e 0d 09 51 33 50 6f 69 | 6e 74 33 44 5f 56 65 63 |...Q3Poi|nt3D_Vec| |000011b0| 74 6f 72 33 44 5f 41 64 | 64 28 26 74 68 65 44 6f |tor3D_Ad|d(&theDo| |000011c0| 63 75 6d 65 6e 74 2d 3e | 63 61 6d 65 72 61 4c 6f |cument->|cameraLo| |000011d0| 63 61 74 69 6f 6e 2c 26 | 73 63 61 6c 65 64 56 65 |cation,&|scaledVe| |000011e0| 63 74 6f 72 2c 26 6e 65 | 77 50 6f 69 6e 74 29 3b |ctor,&ne|wPoint);| |000011f0| 0d 09 74 68 65 44 6f 63 | 75 6d 65 6e 74 2d 3e 63 |..theDoc|ument->c| |00001200| 61 6d 65 72 61 4c 6f 63 | 61 74 69 6f 6e 20 3d 20 |ameraLoc|ation = | |00001210| 6e 65 77 50 6f 69 6e 74 | 3b 0d 09 51 33 50 6f 69 |newPoint|;..Q3Poi| |00001220| 6e 74 33 44 5f 56 65 63 | 74 6f 72 33 44 5f 41 64 |nt3D_Vec|tor3D_Ad| |00001230| 64 28 26 74 68 65 44 6f | 63 75 6d 65 6e 74 2d 3e |d(&theDo|cument->| |00001240| 70 6f 69 6e 74 4f 66 49 | 6e 74 65 72 65 73 74 2c |pointOfI|nterest,| |00001250| 26 73 63 61 6c 65 64 56 | 65 63 74 6f 72 2c 26 6e |&scaledV|ector,&n| |00001260| 65 77 50 6f 69 6e 74 29 | 3b 0d 09 74 68 65 44 6f |ewPoint)|;..theDo| |00001270| 63 75 6d 65 6e 74 2d 3e | 70 6f 69 6e 74 4f 66 49 |cument->|pointOfI| |00001280| 6e 74 65 72 65 73 74 20 | 3d 20 6e 65 77 50 6f 69 |nterest |= newPoi| |00001290| 6e 74 3b 0d 0d 09 2f 2f | 20 53 65 74 20 74 68 65 |nt;...//| Set the| |000012a0| 20 75 70 64 61 74 65 64 | 20 63 61 6d 65 72 61 20 | updated| camera | |000012b0| 64 61 74 61 20 74 6f 20 | 74 68 65 20 63 61 6d 65 |data to |the came| |000012c0| 72 61 2e 0d 09 4d 79 53 | 65 74 43 61 6d 65 72 61 |ra...MyS|etCamera| |000012d0| 44 61 74 61 28 74 68 65 | 44 6f 63 75 6d 65 6e 74 |Data(the|Document| |000012e0| 2c 20 74 68 65 43 61 6d | 65 72 61 29 3b 0d 0d 09 |, theCam|era);...| |000012f0| 2f 2f 20 55 70 64 61 74 | 65 20 74 68 65 20 76 69 |// Updat|e the vi| |00001300| 65 77 20 77 69 74 68 20 | 74 68 65 20 63 68 61 6e |ew with |the chan| |00001310| 67 65 64 20 63 61 6d 65 | 72 61 20 61 6e 64 20 64 |ged came|ra and d| |00001320| 69 73 70 6f 73 65 20 6f | 66 20 74 68 65 20 63 61 |ispose o|f the ca| |00001330| 6d 65 72 61 2e 0d 09 51 | 33 56 69 65 77 5f 53 65 |mera...Q|3View_Se| |00001340| 74 43 61 6d 65 72 61 28 | 74 68 65 56 69 65 77 2c |tCamera(|theView,| |00001350| 20 74 68 65 43 61 6d 65 | 72 61 29 3b 0d 09 51 33 | theCame|ra);..Q3| |00001360| 4f 62 6a 65 63 74 5f 44 | 69 73 70 6f 73 65 28 74 |Object_D|ispose(t| |00001370| 68 65 43 61 6d 65 72 61 | 29 3b 0d 7d 0d 0d 2f 2f |heCamera|);.}..//| |00001380| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000013a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000013b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000013c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000013d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 2f 2f 20 |--------|----.// | |000013e0| 20 4d 6f 76 65 20 43 61 | 6d 65 72 61 20 59 0d 2f | Move Ca|mera Y./| |000013f0| 2f 0d 2f 2f 20 4d 6f 76 | 65 20 74 68 65 20 63 61 |/.// Mov|e the ca| |00001400| 6d 65 72 61 20 61 6c 6f | 6e 67 20 74 68 65 20 59 |mera alo|ng the Y| |00001410| 20 61 78 69 73 0d 76 6f | 69 64 20 4d 79 4d 6f 76 | axis.vo|id MyMov| |00001420| 65 43 61 6d 65 72 61 59 | 28 44 6f 63 75 6d 65 6e |eCameraY|(Documen| |00001430| 74 50 74 72 20 74 68 65 | 44 6f 63 75 6d 65 6e 74 |tPtr the|Document| |00001440| 2c 20 66 6c 6f 61 74 20 | 64 59 29 0d 7b 0d 09 54 |, float |dY).{..T| |00001450| 51 33 56 69 65 77 4f 62 | 6a 65 63 74 09 09 74 68 |Q3ViewOb|ject..th| |00001460| 65 56 69 65 77 3b 0d 09 | 54 51 33 43 61 6d 65 72 |eView;..|TQ3Camer| |00001470| 61 4f 62 6a 65 63 74 09 | 09 74 68 65 43 61 6d 65 |aObject.|.theCame| |00001480| 72 61 3b 0d 09 54 51 33 | 56 65 63 74 6f 72 33 44 |ra;..TQ3|Vector3D| |00001490| 09 09 09 73 63 61 6c 65 | 64 56 65 63 74 6f 72 3b |...scale|dVector;| |000014a0| 0d 09 54 51 33 50 6f 69 | 6e 74 33 44 09 09 09 6e |..TQ3Poi|nt3D...n| |000014b0| 65 77 50 6f 69 6e 74 3b | 0d 0d 09 2f 2f 20 47 65 |ewPoint;|...// Ge| |000014c0| 74 20 74 68 65 20 76 69 | 65 77 20 61 6e 64 20 74 |t the vi|ew and t| |000014d0| 68 65 20 63 61 6d 65 72 | 61 20 6f 62 6a 65 63 74 |he camer|a object| |000014e0| 73 2e 0d 09 74 68 65 56 | 69 65 77 20 3d 20 74 68 |s...theV|iew = th| |000014f0| 65 44 6f 63 75 6d 65 6e | 74 2d 3e 74 68 65 56 69 |eDocumen|t->theVi| |00001500| 65 77 3b 0d 09 51 33 56 | 69 65 77 5f 47 65 74 43 |ew;..Q3V|iew_GetC| |00001510| 61 6d 65 72 61 28 74 68 | 65 56 69 65 77 2c 20 26 |amera(th|eView, &| |00001520| 74 68 65 43 61 6d 65 72 | 61 29 3b 0d 0d 09 2f 2f |theCamer|a);...//| |00001530| 20 53 63 61 6c 65 20 74 | 68 65 20 59 20 76 65 63 | Scale t|he Y vec| |00001540| 74 6f 72 20 74 6f 20 6d | 61 6b 65 20 69 74 20 64 |tor to m|ake it d| |00001550| 59 20 6c 6f 6e 67 65 72 | 2e 0d 09 51 33 56 65 63 |Y longer|...Q3Vec| |00001560| 74 6f 72 33 44 5f 53 63 | 61 6c 65 28 26 74 68 65 |tor3D_Sc|ale(&the| |00001570| 44 6f 63 75 6d 65 6e 74 | 2d 3e 79 56 65 63 74 6f |Document|->yVecto| |00001580| 72 2c 64 59 2f 51 33 56 | 65 63 74 6f 72 33 44 5f |r,dY/Q3V|ector3D_| |00001590| 4c 65 6e 67 74 68 28 26 | 74 68 65 44 6f 63 75 6d |Length(&|theDocum| |000015a0| 65 6e 74 2d 3e 79 56 65 | 63 74 6f 72 29 2c 0d 09 |ent->yVe|ctor),..| |000015b0| 09 09 09 09 09 26 73 63 | 61 6c 65 64 56 65 63 74 |.....&sc|aledVect| |000015c0| 6f 72 29 3b 0d 0d 09 2f | 2f 20 4d 6f 76 65 20 74 |or);.../|/ Move t| |000015d0| 68 65 20 63 61 6d 65 72 | 61 20 70 6f 73 69 74 69 |he camer|a positi| |000015e0| 6f 6e 20 61 6e 64 20 64 | 69 72 65 63 74 69 6f 6e |on and d|irection| |000015f0| 20 62 79 20 74 68 65 20 | 6e 65 77 20 76 65 63 74 | by the |new vect| |00001600| 6f 72 2e 0d 09 51 33 50 | 6f 69 6e 74 33 44 5f 56 |or...Q3P|oint3D_V| |00001610| 65 63 74 6f 72 33 44 5f | 41 64 64 28 26 74 68 65 |ector3D_|Add(&the| |00001620| 44 6f 63 75 6d 65 6e 74 | 2d 3e 63 61 6d 65 72 61 |Document|->camera| |00001630| 4c 6f 63 61 74 69 6f 6e | 2c 26 73 63 61 6c 65 64 |Location|,&scaled| |00001640| 56 65 63 74 6f 72 2c 26 | 6e 65 77 50 6f 69 6e 74 |Vector,&|newPoint| |00001650| 29 3b 0d 09 74 68 65 44 | 6f 63 75 6d 65 6e 74 2d |);..theD|ocument-| |00001660| 3e 63 61 6d 65 72 61 4c | 6f 63 61 74 69 6f 6e 20 |>cameraL|ocation | |00001670| 3d 20 6e 65 77 50 6f 69 | 6e 74 3b 0d 09 51 33 50 |= newPoi|nt;..Q3P| |00001680| 6f 69 6e 74 33 44 5f 56 | 65 63 74 6f 72 33 44 5f |oint3D_V|ector3D_| |00001690| 41 64 64 28 26 74 68 65 | 44 6f 63 75 6d 65 6e 74 |Add(&the|Document| |000016a0| 2d 3e 70 6f 69 6e 74 4f | 66 49 6e 74 65 72 65 73 |->pointO|fInteres| |000016b0| 74 2c 26 73 63 61 6c 65 | 64 56 65 63 74 6f 72 2c |t,&scale|dVector,| |000016c0| 26 6e 65 77 50 6f 69 6e | 74 29 3b 0d 09 74 68 65 |&newPoin|t);..the| |000016d0| 44 6f 63 75 6d 65 6e 74 | 2d 3e 70 6f 69 6e 74 4f |Document|->pointO| |000016e0| 66 49 6e 74 65 72 65 73 | 74 20 3d 20 6e 65 77 50 |fInteres|t = newP| |000016f0| 6f 69 6e 74 3b 0d 0d 09 | 2f 2f 20 53 65 74 20 74 |oint;...|// Set t| |00001700| 68 65 20 75 70 64 61 74 | 65 64 20 63 61 6d 65 72 |he updat|ed camer| |00001710| 61 20 64 61 74 61 20 74 | 6f 20 74 68 65 20 63 61 |a data t|o the ca| |00001720| 6d 65 72 61 2e 0d 09 4d | 79 53 65 74 43 61 6d 65 |mera...M|ySetCame| |00001730| 72 61 44 61 74 61 28 74 | 68 65 44 6f 63 75 6d 65 |raData(t|heDocume| |00001740| 6e 74 2c 20 74 68 65 43 | 61 6d 65 72 61 29 3b 0d |nt, theC|amera);.| |00001750| 0d 09 2f 2f 20 55 70 64 | 61 74 65 20 74 68 65 20 |..// Upd|ate the | |00001760| 76 69 65 77 20 77 69 74 | 68 20 74 68 65 20 63 68 |view wit|h the ch| |00001770| 61 6e 67 65 64 20 63 61 | 6d 65 72 61 20 61 6e 64 |anged ca|mera and| |00001780| 20 64 69 73 70 6f 73 65 | 20 6f 66 20 74 68 65 20 | dispose| of the | |00001790| 63 61 6d 65 72 61 2e 0d | 09 51 33 56 69 65 77 5f |camera..|.Q3View_| |000017a0| 53 65 74 43 61 6d 65 72 | 61 28 74 68 65 56 69 65 |SetCamer|a(theVie| |000017b0| 77 2c 20 74 68 65 43 61 | 6d 65 72 61 29 3b 0d 09 |w, theCa|mera);..| |000017c0| 51 33 4f 62 6a 65 63 74 | 5f 44 69 73 70 6f 73 65 |Q3Object|_Dispose| |000017d0| 28 74 68 65 43 61 6d 65 | 72 61 29 3b 0d 7d 0d 0d |(theCame|ra);.}..| |000017e0| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------| |000017f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2f |--------|------./| |00001840| 2f 20 20 4d 6f 76 65 20 | 43 61 6d 65 72 61 20 5a |/ Move |Camera Z| |00001850| 0d 2f 2f 0d 2f 2f 20 4d | 6f 76 65 20 74 68 65 20 |.//.// M|ove the | |00001860| 63 61 6d 65 72 61 20 61 | 6c 6f 6e 67 20 74 68 65 |camera a|long the| |00001870| 20 5a 20 61 78 69 73 0d | 76 6f 69 64 20 4d 79 4d | Z axis.|void MyM| |00001880| 6f 76 65 43 61 6d 65 72 | 61 5a 28 44 6f 63 75 6d |oveCamer|aZ(Docum| |00001890| 65 6e 74 50 74 72 20 74 | 68 65 44 6f 63 75 6d 65 |entPtr t|heDocume| |000018a0| 6e 74 2c 20 66 6c 6f 61 | 74 20 64 5a 29 0d 7b 0d |nt, floa|t dZ).{.| |000018b0| 09 54 51 33 56 69 65 77 | 4f 62 6a 65 63 74 09 09 |.TQ3View|Object..| |000018c0| 74 68 65 56 69 65 77 3b | 0d 09 54 51 33 43 61 6d |theView;|..TQ3Cam| |000018d0| 65 72 61 4f 62 6a 65 63 | 74 09 09 74 68 65 43 61 |eraObjec|t..theCa| |000018e0| 6d 65 72 61 3b 0d 09 54 | 51 33 56 65 63 74 6f 72 |mera;..T|Q3Vector| |000018f0| 33 44 09 09 09 73 63 61 | 6c 65 64 56 65 63 74 6f |3D...sca|ledVecto| |00001900| 72 3b 0d 09 54 51 33 50 | 6f 69 6e 74 33 44 09 09 |r;..TQ3P|oint3D..| |00001910| 09 6e 65 77 50 6f 69 6e | 74 3b 0d 0d 09 2f 2f 20 |.newPoin|t;...// | |00001920| 47 65 74 20 74 68 65 20 | 76 69 65 77 20 61 6e 64 |Get the |view and| |00001930| 20 74 68 65 20 63 61 6d | 65 72 61 20 6f 62 6a 65 | the cam|era obje| |00001940| 63 74 73 2e 0d 09 74 68 | 65 56 69 65 77 20 3d 20 |cts...th|eView = | |00001950| 74 68 65 44 6f 63 75 6d | 65 6e 74 2d 3e 74 68 65 |theDocum|ent->the| |00001960| 56 69 65 77 3b 0d 09 51 | 33 56 69 65 77 5f 47 65 |View;..Q|3View_Ge| |00001970| 74 43 61 6d 65 72 61 28 | 74 68 65 56 69 65 77 2c |tCamera(|theView,| |00001980| 20 26 74 68 65 43 61 6d | 65 72 61 29 3b 0d 0d 09 | &theCam|era);...| |00001990| 2f 2f 20 53 63 61 6c 65 | 20 74 68 65 20 5a 20 76 |// Scale| the Z v| |000019a0| 65 63 74 6f 72 20 74 6f | 20 6d 61 6b 65 20 69 74 |ector to| make it| |000019b0| 20 64 5a 20 6c 6f 6e 67 | 65 72 2e 0d 09 51 33 56 | dZ long|er...Q3V| |000019c0| 65 63 74 6f 72 33 44 5f | 53 63 61 6c 65 28 26 74 |ector3D_|Scale(&t| |000019d0| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 7a 56 65 63 |heDocume|nt->zVec| |000019e0| 74 6f 72 2c 64 5a 2f 51 | 33 56 65 63 74 6f 72 33 |tor,dZ/Q|3Vector3| |000019f0| 44 5f 4c 65 6e 67 74 68 | 28 26 74 68 65 44 6f 63 |D_Length|(&theDoc| |00001a00| 75 6d 65 6e 74 2d 3e 7a | 56 65 63 74 6f 72 29 2c |ument->z|Vector),| |00001a10| 0d 09 09 09 09 09 09 26 | 73 63 61 6c 65 64 56 65 |.......&|scaledVe| |00001a20| 63 74 6f 72 29 3b 0d 0d | 09 2f 2f 20 4d 6f 76 65 |ctor);..|.// Move| |00001a30| 20 74 68 65 20 63 61 6d | 65 72 61 20 70 6f 73 69 | the cam|era posi| |00001a40| 74 69 6f 6e 20 61 6e 64 | 20 64 69 72 65 63 74 69 |tion and| directi| |00001a50| 6f 6e 20 62 79 20 74 68 | 65 20 6e 65 77 20 76 65 |on by th|e new ve| |00001a60| 63 74 6f 72 2e 0d 09 51 | 33 50 6f 69 6e 74 33 44 |ctor...Q|3Point3D| |00001a70| 5f 56 65 63 74 6f 72 33 | 44 5f 41 64 64 28 26 74 |_Vector3|D_Add(&t| |00001a80| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 63 61 6d 65 |heDocume|nt->came| |00001a90| 72 61 4c 6f 63 61 74 69 | 6f 6e 2c 26 73 63 61 6c |raLocati|on,&scal| |00001aa0| 65 64 56 65 63 74 6f 72 | 2c 26 6e 65 77 50 6f 69 |edVector|,&newPoi| |00001ab0| 6e 74 29 3b 0d 09 74 68 | 65 44 6f 63 75 6d 65 6e |nt);..th|eDocumen| |00001ac0| 74 2d 3e 63 61 6d 65 72 | 61 4c 6f 63 61 74 69 6f |t->camer|aLocatio| |00001ad0| 6e 20 3d 20 6e 65 77 50 | 6f 69 6e 74 3b 0d 09 51 |n = newP|oint;..Q| |00001ae0| 33 50 6f 69 6e 74 33 44 | 5f 56 65 63 74 6f 72 33 |3Point3D|_Vector3| |00001af0| 44 5f 41 64 64 28 26 74 | 68 65 44 6f 63 75 6d 65 |D_Add(&t|heDocume| |00001b00| 6e 74 2d 3e 70 6f 69 6e | 74 4f 66 49 6e 74 65 72 |nt->poin|tOfInter| |00001b10| 65 73 74 2c 26 73 63 61 | 6c 65 64 56 65 63 74 6f |est,&sca|ledVecto| |00001b20| 72 2c 26 6e 65 77 50 6f | 69 6e 74 29 3b 0d 09 74 |r,&newPo|int);..t| |00001b30| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 70 6f 69 6e |heDocume|nt->poin| |00001b40| 74 4f 66 49 6e 74 65 72 | 65 73 74 20 3d 20 6e 65 |tOfInter|est = ne| |00001b50| 77 50 6f 69 6e 74 3b 0d | 09 0d 09 2f 2f 20 53 65 |wPoint;.|...// Se| |00001b60| 74 20 74 68 65 20 75 70 | 64 61 74 65 64 20 63 61 |t the up|dated ca| |00001b70| 6d 65 72 61 20 64 61 74 | 61 20 74 6f 20 74 68 65 |mera dat|a to the| |00001b80| 20 63 61 6d 65 72 61 2e | 0d 09 4d 79 53 65 74 43 | camera.|..MySetC| |00001b90| 61 6d 65 72 61 44 61 74 | 61 28 74 68 65 44 6f 63 |ameraDat|a(theDoc| |00001ba0| 75 6d 65 6e 74 2c 20 74 | 68 65 43 61 6d 65 72 61 |ument, t|heCamera| |00001bb0| 29 3b 0d 0d 09 2f 2f 20 | 55 70 64 61 74 65 20 74 |);...// |Update t| |00001bc0| 68 65 20 76 69 65 77 20 | 77 69 74 68 20 74 68 65 |he view |with the| |00001bd0| 20 63 68 61 6e 67 65 64 | 20 63 61 6d 65 72 61 20 | changed| camera | |00001be0| 61 6e 64 20 64 69 73 70 | 6f 73 65 20 6f 66 20 74 |and disp|ose of t| |00001bf0| 68 65 20 63 61 6d 65 72 | 61 2e 0d 09 51 33 56 69 |he camer|a...Q3Vi| |00001c00| 65 77 5f 53 65 74 43 61 | 6d 65 72 61 28 74 68 65 |ew_SetCa|mera(the| |00001c10| 56 69 65 77 2c 20 74 68 | 65 43 61 6d 65 72 61 29 |View, th|eCamera)| |00001c20| 3b 0d 09 51 33 4f 62 6a | 65 63 74 5f 44 69 73 70 |;..Q3Obj|ect_Disp| |00001c30| 6f 73 65 28 74 68 65 43 | 61 6d 65 72 61 29 3b 0d |ose(theC|amera);.| |00001c40| 7d 0d 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}..//---|--------| |00001c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001c80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001ca0| 2d 0d 2f 2f 20 20 52 6f | 74 61 74 65 20 43 61 6d |-.// Ro|tate Cam| |00001cb0| 65 72 61 20 58 0d 2f 2f | 0d 2f 2f 20 52 6f 74 61 |era X.//|.// Rota| |00001cc0| 74 65 20 74 68 65 20 63 | 61 6d 65 72 61 20 61 62 |te the c|amera ab| |00001cd0| 6f 75 74 20 74 68 65 20 | 58 20 61 78 69 73 0d 76 |out the |X axis.v| |00001ce0| 6f 69 64 20 4d 79 52 6f | 74 61 74 65 43 61 6d 65 |oid MyRo|tateCame| |00001cf0| 72 61 58 28 44 6f 63 75 | 6d 65 6e 74 50 74 72 20 |raX(Docu|mentPtr | |00001d00| 74 68 65 44 6f 63 75 6d | 65 6e 74 2c 20 66 6c 6f |theDocum|ent, flo| |00001d10| 61 74 20 64 58 29 0d 7b | 0d 09 54 51 33 56 69 65 |at dX).{|..TQ3Vie| |00001d20| 77 4f 62 6a 65 63 74 09 | 09 74 68 65 56 69 65 77 |wObject.|.theView| |00001d30| 3b 0d 09 54 51 33 43 61 | 6d 65 72 61 4f 62 6a 65 |;..TQ3Ca|meraObje| |00001d40| 63 74 09 09 74 68 65 43 | 61 6d 65 72 61 3b 0d 09 |ct..theC|amera;..| |00001d50| 54 51 33 56 65 63 74 6f | 72 33 44 09 09 09 72 6f |TQ3Vecto|r3D...ro| |00001d60| 74 61 74 65 64 56 65 63 | 74 6f 72 3b 0d 09 54 51 |tatedVec|tor;..TQ| |00001d70| 33 4d 61 74 72 69 78 34 | 78 34 09 09 72 6f 74 61 |3Matrix4|x4..rota| |00001d80| 74 69 6f 6e 4d 61 74 72 | 69 78 3b 0d 0d 09 2f 2f |tionMatr|ix;...//| |00001d90| 20 47 65 74 20 74 68 65 | 20 76 69 65 77 20 61 6e | Get the| view an| |00001da0| 64 20 74 68 65 20 63 61 | 6d 65 72 61 20 6f 62 6a |d the ca|mera obj| |00001db0| 65 63 74 73 2e 0d 09 74 | 68 65 56 69 65 77 20 3d |ects...t|heView =| |00001dc0| 20 74 68 65 44 6f 63 75 | 6d 65 6e 74 2d 3e 74 68 | theDocu|ment->th| |00001dd0| 65 56 69 65 77 3b 0d 09 | 51 33 56 69 65 77 5f 47 |eView;..|Q3View_G| |00001de0| 65 74 43 61 6d 65 72 61 | 28 74 68 65 56 69 65 77 |etCamera|(theView| |00001df0| 2c 20 26 74 68 65 43 61 | 6d 65 72 61 29 3b 0d 0d |, &theCa|mera);..| |00001e00| 09 2f 2f 20 43 72 65 61 | 74 65 20 74 68 65 20 72 |.// Crea|te the r| |00001e10| 6f 74 61 74 69 6f 6e 20 | 6d 61 74 72 69 78 20 66 |otation |matrix f| |00001e20| 6f 72 20 72 6f 74 61 74 | 69 6e 67 20 61 62 6f 75 |or rotat|ing abou| |00001e30| 74 20 74 68 65 20 78 20 | 61 78 69 73 2e 0d 09 51 |t the x |axis...Q| |00001e40| 33 4d 61 74 72 69 78 34 | 78 34 5f 53 65 74 52 6f |3Matrix4|x4_SetRo| |00001e50| 74 61 74 65 41 62 6f 75 | 74 41 78 69 73 28 26 72 |tateAbou|tAxis(&r| |00001e60| 6f 74 61 74 69 6f 6e 4d | 61 74 72 69 78 2c 0d 09 |otationM|atrix,..| |00001e70| 09 26 74 68 65 44 6f 63 | 75 6d 65 6e 74 2d 3e 63 |.&theDoc|ument->c| |00001e80| 61 6d 65 72 61 4c 6f 63 | 61 74 69 6f 6e 2c 20 26 |ameraLoc|ation, &| |00001e90| 74 68 65 44 6f 63 75 6d | 65 6e 74 2d 3e 78 56 65 |theDocum|ent->xVe| |00001ea0| 63 74 6f 72 2c 20 64 58 | 29 3b 0d 0d 09 2f 2f 20 |ctor, dX|);...// | |00001eb0| 52 6f 74 61 74 65 20 74 | 68 65 20 79 20 76 65 63 |Rotate t|he y vec| |00001ec0| 74 6f 72 20 28 75 70 20 | 76 65 63 74 6f 72 29 20 |tor (up |vector) | |00001ed0| 61 62 6f 75 74 20 74 68 | 65 20 78 20 61 78 69 73 |about th|e x axis| |00001ee0| 2e 0d 09 51 33 56 65 63 | 74 6f 72 33 44 5f 54 72 |...Q3Vec|tor3D_Tr| |00001ef0| 61 6e 73 66 6f 72 6d 28 | 26 74 68 65 44 6f 63 75 |ansform(|&theDocu| |00001f00| 6d 65 6e 74 2d 3e 79 56 | 65 63 74 6f 72 2c 20 26 |ment->yV|ector, &| |00001f10| 72 6f 74 61 74 69 6f 6e | 4d 61 74 72 69 78 2c 0d |rotation|Matrix,.| |00001f20| 09 09 26 72 6f 74 61 74 | 65 64 56 65 63 74 6f 72 |..&rotat|edVector| |00001f30| 29 3b 0d 09 74 68 65 44 | 6f 63 75 6d 65 6e 74 2d |);..theD|ocument-| |00001f40| 3e 79 56 65 63 74 6f 72 | 20 3d 20 72 6f 74 61 74 |>yVector| = rotat| |00001f50| 65 64 56 65 63 74 6f 72 | 3b 0d 0d 09 2f 2f 20 52 |edVector|;...// R| |00001f60| 6f 74 61 74 65 20 74 68 | 65 20 7a 20 76 65 63 74 |otate th|e z vect| |00001f70| 6f 72 20 61 62 6f 75 74 | 20 74 68 65 20 78 20 61 |or about| the x a| |00001f80| 78 69 73 2e 0d 09 51 33 | 56 65 63 74 6f 72 33 44 |xis...Q3|Vector3D| |00001f90| 5f 54 72 61 6e 73 66 6f | 72 6d 28 26 74 68 65 44 |_Transfo|rm(&theD| |00001fa0| 6f 63 75 6d 65 6e 74 2d | 3e 7a 56 65 63 74 6f 72 |ocument-|>zVector| |00001fb0| 2c 20 26 72 6f 74 61 74 | 69 6f 6e 4d 61 74 72 69 |, &rotat|ionMatri| |00001fc0| 78 2c 0d 09 09 26 72 6f | 74 61 74 65 64 56 65 63 |x,...&ro|tatedVec| |00001fd0| 74 6f 72 29 3b 0d 09 74 | 68 65 44 6f 63 75 6d 65 |tor);..t|heDocume| |00001fe0| 6e 74 2d 3e 7a 56 65 63 | 74 6f 72 20 3d 20 72 6f |nt->zVec|tor = ro| |00001ff0| 74 61 74 65 64 56 65 63 | 74 6f 72 3b 0d 0d 09 2f |tatedVec|tor;.../| |00002000| 2f 20 55 70 64 61 74 65 | 20 74 68 65 20 70 6f 69 |/ Update| the poi| |00002010| 6e 74 20 6f 66 20 69 6e | 74 65 72 65 73 74 20 66 |nt of in|terest f| |00002020| 72 6f 6d 20 74 68 65 20 | 6e 65 77 20 7a 20 76 65 |rom the |new z ve| |00002030| 63 74 6f 72 2e 0d 09 51 | 33 50 6f 69 6e 74 33 44 |ctor...Q|3Point3D| |00002040| 5f 56 65 63 74 6f 72 33 | 44 5f 41 64 64 28 26 74 |_Vector3|D_Add(&t| |00002050| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 63 61 6d 65 |heDocume|nt->came| |00002060| 72 61 4c 6f 63 61 74 69 | 6f 6e 2c 0d 09 09 26 74 |raLocati|on,...&t| |00002070| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 7a 56 65 63 |heDocume|nt->zVec| |00002080| 74 6f 72 2c 20 26 74 68 | 65 44 6f 63 75 6d 65 6e |tor, &th|eDocumen| |00002090| 74 2d 3e 70 6f 69 6e 74 | 4f 66 49 6e 74 65 72 65 |t->point|OfIntere| |000020a0| 73 74 29 3b 0d 0d 09 2f | 2f 20 53 65 74 20 74 68 |st);.../|/ Set th| |000020b0| 65 20 75 70 64 61 74 65 | 64 20 63 61 6d 65 72 61 |e update|d camera| |000020c0| 20 64 61 74 61 20 74 6f | 20 74 68 65 20 63 61 6d | data to| the cam| |000020d0| 65 72 61 2e 0d 09 4d 79 | 53 65 74 43 61 6d 65 72 |era...My|SetCamer| |000020e0| 61 44 61 74 61 28 74 68 | 65 44 6f 63 75 6d 65 6e |aData(th|eDocumen| |000020f0| 74 2c 20 74 68 65 43 61 | 6d 65 72 61 29 3b 0d 0d |t, theCa|mera);..| |00002100| 09 2f 2f 20 55 70 64 61 | 74 65 20 74 68 65 20 76 |.// Upda|te the v| |00002110| 69 65 77 20 77 69 74 68 | 20 74 68 65 20 63 68 61 |iew with| the cha| |00002120| 6e 67 65 64 20 63 61 6d | 65 72 61 20 61 6e 64 20 |nged cam|era and | |00002130| 64 69 73 70 6f 73 65 20 | 6f 66 20 74 68 65 20 63 |dispose |of the c| |00002140| 61 6d 65 72 61 2e 0d 09 | 51 33 56 69 65 77 5f 53 |amera...|Q3View_S| |00002150| 65 74 43 61 6d 65 72 61 | 28 74 68 65 56 69 65 77 |etCamera|(theView| |00002160| 2c 20 74 68 65 43 61 6d | 65 72 61 29 3b 0d 09 51 |, theCam|era);..Q| |00002170| 33 4f 62 6a 65 63 74 5f | 44 69 73 70 6f 73 65 28 |3Object_|Dispose(| |00002180| 74 68 65 43 61 6d 65 72 | 61 29 3b 0d 7d 0d 0d 2f |theCamer|a);.}../| |00002190| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------| |000021a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000021b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000021c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000021d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000021e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//| |000021f0| 20 20 52 6f 74 61 74 65 | 20 43 61 6d 65 72 61 20 | Rotate| Camera | |00002200| 59 0d 2f 2f 0d 2f 2f 20 | 52 6f 74 61 74 65 20 74 |Y.//.// |Rotate t| |00002210| 68 65 20 63 61 6d 65 72 | 61 20 61 62 6f 75 74 20 |he camer|a about | |00002220| 74 68 65 20 59 20 61 78 | 69 73 0d 76 6f 69 64 20 |the Y ax|is.void | |00002230| 4d 79 52 6f 74 61 74 65 | 43 61 6d 65 72 61 59 28 |MyRotate|CameraY(| |00002240| 44 6f 63 75 6d 65 6e 74 | 50 74 72 20 74 68 65 44 |Document|Ptr theD| |00002250| 6f 63 75 6d 65 6e 74 2c | 20 66 6c 6f 61 74 20 64 |ocument,| float d| |00002260| 59 29 0d 7b 0d 09 54 51 | 33 56 69 65 77 4f 62 6a |Y).{..TQ|3ViewObj| |00002270| 65 63 74 09 09 74 68 65 | 56 69 65 77 3b 0d 09 54 |ect..the|View;..T| |00002280| 51 33 43 61 6d 65 72 61 | 4f 62 6a 65 63 74 09 09 |Q3Camera|Object..| |00002290| 74 68 65 43 61 6d 65 72 | 61 3b 0d 09 54 51 33 56 |theCamer|a;..TQ3V| |000022a0| 65 63 74 6f 72 33 44 09 | 09 09 72 6f 74 61 74 65 |ector3D.|..rotate| |000022b0| 64 56 65 63 74 6f 72 3b | 0d 09 54 51 33 4d 61 74 |dVector;|..TQ3Mat| |000022c0| 72 69 78 34 78 34 09 09 | 72 6f 74 61 74 69 6f 6e |rix4x4..|rotation| |000022d0| 4d 61 74 72 69 78 3b 0d | 0d 09 2f 2f 20 47 65 74 |Matrix;.|..// Get| |000022e0| 20 74 68 65 20 76 69 65 | 77 20 61 6e 64 20 74 68 | the vie|w and th| |000022f0| 65 20 63 61 6d 65 72 61 | 20 6f 62 6a 65 63 74 73 |e camera| objects| |00002300| 2e 0d 09 74 68 65 56 69 | 65 77 20 3d 20 74 68 65 |...theVi|ew = the| |00002310| 44 6f 63 75 6d 65 6e 74 | 2d 3e 74 68 65 56 69 65 |Document|->theVie| |00002320| 77 3b 0d 09 51 33 56 69 | 65 77 5f 47 65 74 43 61 |w;..Q3Vi|ew_GetCa| |00002330| 6d 65 72 61 28 74 68 65 | 56 69 65 77 2c 20 26 74 |mera(the|View, &t| |00002340| 68 65 43 61 6d 65 72 61 | 29 3b 0d 0d 09 2f 2f 20 |heCamera|);...// | |00002350| 43 72 65 61 74 65 20 74 | 68 65 20 72 6f 74 61 74 |Create t|he rotat| |00002360| 69 6f 6e 20 6d 61 74 72 | 69 78 20 66 6f 72 20 72 |ion matr|ix for r| |00002370| 6f 74 61 74 69 6e 67 20 | 61 62 6f 75 74 20 74 68 |otating |about th| |00002380| 65 20 79 20 61 78 69 73 | 2e 0d 09 51 33 4d 61 74 |e y axis|...Q3Mat| |00002390| 72 69 78 34 78 34 5f 53 | 65 74 52 6f 74 61 74 65 |rix4x4_S|etRotate| |000023a0| 41 62 6f 75 74 41 78 69 | 73 28 26 72 6f 74 61 74 |AboutAxi|s(&rotat| |000023b0| 69 6f 6e 4d 61 74 72 69 | 78 2c 0d 09 09 26 74 68 |ionMatri|x,...&th| |000023c0| 65 44 6f 63 75 6d 65 6e | 74 2d 3e 63 61 6d 65 72 |eDocumen|t->camer| |000023d0| 61 4c 6f 63 61 74 69 6f | 6e 2c 20 26 74 68 65 44 |aLocatio|n, &theD| |000023e0| 6f 63 75 6d 65 6e 74 2d | 3e 79 56 65 63 74 6f 72 |ocument-|>yVector| |000023f0| 2c 20 64 59 29 3b 0d 0d | 09 2f 2f 20 52 6f 74 61 |, dY);..|.// Rota| |00002400| 74 65 20 74 68 65 20 7a | 20 76 65 63 74 6f 72 20 |te the z| vector | |00002410| 61 62 6f 75 74 20 74 68 | 65 20 79 20 61 78 69 73 |about th|e y axis| |00002420| 2e 0d 09 51 33 56 65 63 | 74 6f 72 33 44 5f 54 72 |...Q3Vec|tor3D_Tr| |00002430| 61 6e 73 66 6f 72 6d 28 | 26 74 68 65 44 6f 63 75 |ansform(|&theDocu| |00002440| 6d 65 6e 74 2d 3e 7a 56 | 65 63 74 6f 72 2c 20 26 |ment->zV|ector, &| |00002450| 72 6f 74 61 74 69 6f 6e | 4d 61 74 72 69 78 2c 0d |rotation|Matrix,.| |00002460| 09 09 26 72 6f 74 61 74 | 65 64 56 65 63 74 6f 72 |..&rotat|edVector| |00002470| 29 3b 0d 09 74 68 65 44 | 6f 63 75 6d 65 6e 74 2d |);..theD|ocument-| |00002480| 3e 7a 56 65 63 74 6f 72 | 20 3d 20 72 6f 74 61 74 |>zVector| = rotat| |00002490| 65 64 56 65 63 74 6f 72 | 3b 0d 0d 09 2f 2f 20 52 |edVector|;...// R| |000024a0| 6f 74 61 74 65 20 74 68 | 65 20 78 20 76 65 63 74 |otate th|e x vect| |000024b0| 6f 72 20 61 62 6f 75 74 | 20 74 68 65 20 79 20 61 |or about| the y a| |000024c0| 78 69 73 2e 0d 09 51 33 | 56 65 63 74 6f 72 33 44 |xis...Q3|Vector3D| |000024d0| 5f 54 72 61 6e 73 66 6f | 72 6d 28 26 74 68 65 44 |_Transfo|rm(&theD| |000024e0| 6f 63 75 6d 65 6e 74 2d | 3e 78 56 65 63 74 6f 72 |ocument-|>xVector| |000024f0| 2c 20 26 72 6f 74 61 74 | 69 6f 6e 4d 61 74 72 69 |, &rotat|ionMatri| |00002500| 78 2c 0d 09 09 26 72 6f | 74 61 74 65 64 56 65 63 |x,...&ro|tatedVec| |00002510| 74 6f 72 29 3b 0d 09 74 | 68 65 44 6f 63 75 6d 65 |tor);..t|heDocume| |00002520| 6e 74 2d 3e 78 56 65 63 | 74 6f 72 20 3d 20 72 6f |nt->xVec|tor = ro| |00002530| 74 61 74 65 64 56 65 63 | 74 6f 72 3b 0d 0d 09 2f |tatedVec|tor;.../| |00002540| 2f 20 55 70 64 61 74 65 | 20 74 68 65 20 70 6f 69 |/ Update| the poi| |00002550| 6e 74 20 6f 66 20 69 6e | 74 65 72 65 73 74 20 66 |nt of in|terest f| |00002560| 72 6f 6d 20 74 68 65 20 | 6e 65 77 20 7a 20 76 65 |rom the |new z ve| |00002570| 63 74 6f 72 2e 0d 09 51 | 33 50 6f 69 6e 74 33 44 |ctor...Q|3Point3D| |00002580| 5f 56 65 63 74 6f 72 33 | 44 5f 41 64 64 28 26 74 |_Vector3|D_Add(&t| |00002590| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 63 61 6d 65 |heDocume|nt->came| |000025a0| 72 61 4c 6f 63 61 74 69 | 6f 6e 2c 0d 09 09 26 74 |raLocati|on,...&t| |000025b0| 68 65 44 6f 63 75 6d 65 | 6e 74 2d 3e 7a 56 65 63 |heDocume|nt->zVec| |000025c0| 74 6f 72 2c 20 26 74 68 | 65 44 6f 63 75 6d 65 6e |tor, &th|eDocumen| |000025d0| 74 2d 3e 70 6f 69 6e 74 | 4f 66 49 6e 74 65 72 65 |t->point|OfIntere| |000025e0| 73 74 29 3b 0d 0d 09 2f | 2f 20 53 65 74 20 74 68 |st);.../|/ Set th| |000025f0| 65 20 75 70 64 61 74 65 | 64 20 63 61 6d 65 72 61 |e update|d camera| |00002600| 20 64 61 74 61 20 74 6f | 20 74 68 65 20 63 61 6d | data to| the cam| |00002610| 65 72 61 2e 0d 09 4d 79 | 53 65 74 43 61 6d 65 72 |era...My|SetCamer| |00002620| 61 44 61 74 61 28 74 68 | 65 44 6f 63 75 6d 65 6e |aData(th|eDocumen| |00002630| 74 2c 20 74 68 65 43 61 | 6d 65 72 61 29 3b 0d 0d |t, theCa|mera);..| |00002640| 09 2f 2f 20 55 70 64 61 | 74 65 20 74 68 65 20 76 |.// Upda|te the v| |00002650| 69 65 77 20 77 69 74 68 | 20 74 68 65 20 63 68 61 |iew with| the cha| |00002660| 6e 67 65 64 20 63 61 6d | 65 72 61 20 61 6e 64 20 |nged cam|era and | |00002670| 64 69 73 70 6f 73 65 20 | 6f 66 20 74 68 65 20 63 |dispose |of the c| |00002680| 61 6d 65 72 61 2e 0d 09 | 51 33 56 69 65 77 5f 53 |amera...|Q3View_S| |00002690| 65 74 43 61 6d 65 72 61 | 28 74 68 65 56 69 65 77 |etCamera|(theView| |000026a0| 2c 20 74 68 65 43 61 6d | 65 72 61 29 3b 0d 09 51 |, theCam|era);..Q| |000026b0| 33 4f 62 6a 65 63 74 5f | 44 69 73 70 6f 73 65 28 |3Object_|Dispose(| |000026c0| 74 68 65 43 61 6d 65 72 | 61 29 3b 0d 7d 0d 0d 2f |theCamer|a);.}../| |000026d0| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------| |000026e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |000026f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00002700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00002710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00002720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//| |00002730| 20 20 52 6f 74 61 74 65 | 20 43 61 6d 65 72 61 20 | Rotate| Camera | |00002740| 5a 0d 2f 2f 0d 2f 2f 20 | 52 6f 74 61 74 65 20 74 |Z.//.// |Rotate t| |00002750| 68 65 20 63 61 6d 65 72 | 61 20 61 62 6f 75 74 20 |he camer|a about | |00002760| 74 68 65 20 5a 20 61 78 | 69 73 0d 76 6f 69 64 20 |the Z ax|is.void | |00002770| 4d 79 52 6f 74 61 74 65 | 43 61 6d 65 72 61 5a 28 |MyRotate|CameraZ(| |00002780| 44 6f 63 75 6d 65 6e 74 | 50 74 72 20 74 68 65 44 |Document|Ptr theD| |00002790| 6f 63 75 6d 65 6e 74 2c | 20 66 6c 6f 61 74 20 64 |ocument,| float d| |000027a0| 5a 29 0d 7b 0d 09 54 51 | 33 56 69 65 77 4f 62 6a |Z).{..TQ|3ViewObj| |000027b0| 65 63 74 09 09 74 68 65 | 56 69 65 77 3b 0d 09 54 |ect..the|View;..T| |000027c0| 51 33 43 61 6d 65 72 61 | 4f 62 6a 65 63 74 09 09 |Q3Camera|Object..| |000027d0| 74 68 65 43 61 6d 65 72 | 61 3b 0d 09 54 51 33 56 |theCamer|a;..TQ3V| |000027e0| 65 63 74 6f 72 33 44 09 | 09 09 72 6f 74 61 74 65 |ector3D.|..rotate| |000027f0| 64 56 65 63 74 6f 72 3b | 0d 09 54 51 33 4d 61 74 |dVector;|..TQ3Mat| |00002800| 72 69 78 34 78 34 09 09 | 72 6f 74 61 74 69 6f 6e |rix4x4..|rotation| |00002810| 4d 61 74 72 69 78 3b 0d | 0d 09 2f 2f 20 47 65 74 |Matrix;.|..// Get| |00002820| 20 74 68 65 20 76 69 65 | 77 20 61 6e 64 20 74 68 | the vie|w and th| |00002830| 65 20 63 61 6d 65 72 61 | 20 6f 62 6a 65 63 74 73 |e camera| objects| |00002840| 2e 0d 09 74 68 65 56 69 | 65 77 20 3d 20 74 68 65 |...theVi|ew = the| |00002850| 44 6f 63 75 6d 65 6e 74 | 2d 3e 74 68 65 56 69 65 |Document|->theVie| |00002860| 77 3b 0d 09 51 33 56 69 | 65 77 5f 47 65 74 43 61 |w;..Q3Vi|ew_GetCa| |00002870| 6d 65 72 61 28 74 68 65 | 56 69 65 77 2c 20 26 74 |mera(the|View, &t| |00002880| 68 65 43 61 6d 65 72 61 | 29 3b 0d 0d 09 2f 2f 20 |heCamera|);...// | |00002890| 43 72 65 61 74 65 20 74 | 68 65 20 72 6f 74 61 74 |Create t|he rotat| |000028a0| 69 6f 6e 20 6d 61 74 72 | 69 78 20 66 6f 72 20 72 |ion matr|ix for r| |000028b0| 6f 74 61 74 69 6e 67 20 | 61 62 6f 75 74 20 74 68 |otating |about th| |000028c0| 65 20 7a 20 61 78 69 73 | 2e 0d 09 51 33 4d 61 74 |e z axis|...Q3Mat| |000028d0| 72 69 78 34 78 34 5f 53 | 65 74 52 6f 74 61 74 65 |rix4x4_S|etRotate| |000028e0| 41 62 6f 75 74 41 78 69 | 73 28 26 72 6f 74 61 74 |AboutAxi|s(&rotat| |000028f0| 69 6f 6e 4d 61 74 72 69 | 78 2c 0d 09 09 26 74 68 |ionMatri|x,...&th| |00002900| 65 44 6f 63 75 6d 65 6e | 74 2d 3e 63 61 6d 65 72 |eDocumen|t->camer| |00002910| 61 4c 6f 63 61 74 69 6f | 6e 2c 20 26 74 68 65 44 |aLocatio|n, &theD| |00002920| 6f 63 75 6d 65 6e 74 2d | 3e 7a 56 65 63 74 6f 72 |ocument-|>zVector| |00002930| 2c 20 64 5a 29 3b 0d 0d | 09 2f 2f 20 52 6f 74 61 |, dZ);..|.// Rota| |00002940| 74 65 20 74 68 65 20 79 | 20 76 65 63 74 6f 72 20 |te the y| vector | |00002950| 28 75 70 20 76 65 63 74 | 6f 72 29 20 61 62 6f 75 |(up vect|or) abou| |00002960| 74 20 74 68 65 20 7a 20 | 61 78 69 73 2e 0d 09 51 |t the z |axis...Q| |00002970| 33 56 65 63 74 6f 72 33 | 44 5f 54 72 61 6e 73 66 |3Vector3|D_Transf| |00002980| 6f 72 6d 28 26 74 68 65 | 44 6f 63 75 6d 65 6e 74 |orm(&the|Document| |00002990| 2d 3e 79 56 65 63 74 6f | 72 2c 20 26 72 6f 74 61 |->yVecto|r, &rota| |000029a0| 74 69 6f 6e 4d 61 74 72 | 69 78 2c 0d 09 09 26 72 |tionMatr|ix,...&r| |000029b0| 6f 74 61 74 65 64 56 65 | 63 74 6f 72 29 3b 0d 09 |otatedVe|ctor);..| |000029c0| 74 68 65 44 6f 63 75 6d | 65 6e 74 2d 3e 79 56 65 |theDocum|ent->yVe| |000029d0| 63 74 6f 72 20 3d 20 72 | 6f 74 61 74 65 64 56 65 |ctor = r|otatedVe| |000029e0| 63 74 6f 72 3b 0d 0d 09 | 2f 2f 20 52 6f 74 61 74 |ctor;...|// Rotat| |000029f0| 65 20 74 68 65 20 78 20 | 76 65 63 74 6f 72 20 61 |e the x |vector a| |00002a00| 62 6f 75 74 20 74 68 65 | 20 7a 20 61 78 69 73 2e |bout the| z axis.| |00002a10| 0d 09 51 33 56 65 63 74 | 6f 72 33 44 5f 54 72 61 |..Q3Vect|or3D_Tra| |00002a20| 6e 73 66 6f 72 6d 28 26 | 74 68 65 44 6f 63 75 6d |nsform(&|theDocum| |00002a30| 65 6e 74 2d 3e 78 56 65 | 63 74 6f 72 2c 20 26 72 |ent->xVe|ctor, &r| |00002a40| 6f 74 61 74 69 6f 6e 4d | 61 74 72 69 78 2c 0d 09 |otationM|atrix,..| |00002a50| 09 26 72 6f 74 61 74 65 | 64 56 65 63 74 6f 72 29 |.&rotate|dVector)| |00002a60| 3b 0d 09 74 68 65 44 6f | 63 75 6d 65 6e 74 2d 3e |;..theDo|cument->| |00002a70| 78 56 65 63 74 6f 72 20 | 3d 20 72 6f 74 61 74 65 |xVector |= rotate| |00002a80| 64 56 65 63 74 6f 72 3b | 0d 0d 09 2f 2f 20 53 65 |dVector;|...// Se| |00002a90| 74 20 74 68 65 20 75 70 | 64 61 74 65 64 20 63 61 |t the up|dated ca| |00002aa0| 6d 65 72 61 20 64 61 74 | 61 20 74 6f 20 74 68 65 |mera dat|a to the| |00002ab0| 20 63 61 6d 65 72 61 2e | 0d 09 4d 79 53 65 74 43 | camera.|..MySetC| |00002ac0| 61 6d 65 72 61 44 61 74 | 61 28 74 68 65 44 6f 63 |ameraDat|a(theDoc| |00002ad0| 75 6d 65 6e 74 2c 20 74 | 68 65 43 61 6d 65 72 61 |ument, t|heCamera| |00002ae0| 29 3b 0d 0d 09 2f 2f 20 | 55 70 64 61 74 65 20 74 |);...// |Update t| |00002af0| 68 65 20 76 69 65 77 20 | 77 69 74 68 20 74 68 65 |he view |with the| |00002b00| 20 63 68 61 6e 67 65 64 | 20 63 61 6d 65 72 61 20 | changed| camera | |00002b10| 61 6e 64 20 64 69 73 70 | 6f 73 65 20 6f 66 20 74 |and disp|ose of t| |00002b20| 68 65 20 63 61 6d 65 72 | 61 2e 0d 09 51 33 56 69 |he camer|a...Q3Vi| |00002b30| 65 77 5f 53 65 74 43 61 | 6d 65 72 61 28 74 68 65 |ew_SetCa|mera(the| |00002b40| 56 69 65 77 2c 20 74 68 | 65 43 61 6d 65 72 61 29 |View, th|eCamera)| |00002b50| 3b 0d 09 51 33 4f 62 6a | 65 63 74 5f 44 69 73 70 |;..Q3Obj|ect_Disp| |00002b60| 6f 73 65 28 74 68 65 43 | 61 6d 65 72 61 29 3b 0d |ose(theC|amera);.| |00002b70| 7d 0d 0d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |}.......|........| |00002b80| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F| |00002b90| 6d 69 73 63 63 64 65 76 | 05 00 00 00 00 00 00 00 |misccdev|........| |00002ba0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002bb0| 08 63 61 6d 65 72 61 2e | 63 6d 02 00 00 00 54 45 |.camera.|cm....TE| |00002bc0| 58 54 4d 50 43 43 01 00 | ff ff ff ff 00 00 00 00 |XTMPCC..|........| |00002bd0| 00 00 54 45 58 54 4d 50 | 43 43 01 00 ff ff ff ff |..TEXTMP|CC......| |00002be0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002bf0| 00 00 ab a8 54 b7 00 00 | 2a f3 00 00 01 9a 00 00 |....T...|*.......| |00002c00| 00 00 00 00 00 00 00 00 | 00 00 00 61 25 01 75 66 |........|...a%.uf| |00002c10| 6f 78 49 4e 49 54 01 00 | 00 00 00 00 00 00 00 00 |oxINIT..|........| |00002c20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002c30| 00 00 00 00 01 21 25 02 | 41 4f 53 31 ff ff 00 00 |.....!%.|AOS1....| |00002c40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002c50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 0e |........|........| |00002c60| 25 02 4d 53 49 54 ff ff | 00 00 00 00 00 00 00 00 |%.MSIT..|........| |00002c70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002c80| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....| |00002c90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002ca0| 00 00 00 00 00 00 00 03 | 00 04 00 57 00 82 03 63 |........|...W...c| |00002cb0| 02 ea 00 57 00 82 03 63 | 02 ea ad fb 67 f6 00 00 |...W...c|....g...| |00002cc0| 02 81 00 00 02 81 00 00 | 00 00 01 00 00 00 00 04 |........|........| |00002cd0| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T| |00002ce0| 00 00 00 46 03 31 1f 34 | 21 ca 00 00 00 1c 00 46 |...F.1.4|!......F| |00002cf0| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..| |00002d00| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........| |00002d10| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........| |00002d20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002d30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002d40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002d50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002d60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00002d70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| +--------+-------------------------+-------------------------+--------+--------+